#include "widget.h"
#include "ui_widget.h"
#include <QDebug>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::on_pushButton_add_clicked()
{
    // 获取当前透明度
    float opacity = this->windowOpacity();
    if(opacity >= 1.0) { // 不加判断条件也可以,到了1.0为上限,再加也加不上去了
        return;
    }
    qDebug() << "opacity=" << opacity;
    opacity += 0.1;
    this->setWindowOpacity(opacity);
}

void Widget::on_pushButton_sub_clicked()
{
    float opacity = this->windowOpacity();
    if(opacity <= 0.0) {
        return;
    }
    qDebug() << "opacity=" << opacity;
    opacity -= 0.1;
    this->setWindowOpacity(opacity);
}

// 由于IEEE 754的标准限制,float/double类型的小数部分没法精确表示一些小数例如,0.1
// 日常代码中不能使用浮点数进行==比较,例如 0.1+0.2==0.3 很可能返回一个false
// 基本上编程语言都采用此标准,C/C++/JAVA/Python/Go......
// 优点: 运算速度快,占用空间小
// 缺点: 对于有些小数无法精确表示

/*
 * 22:35:27: Starting D:\Remote repositories\qt-code\QWidget_8\build\Desktop_Qt_5_15_2_MinGW_64_bit-Debug\debug\QWidget_8.exe...
opacity= 1
opacity= 0.898039
opacity= 0.796078
opacity= 0.694118
opacity= 0.592157
opacity= 0.490196
opacity= 0.388235
opacity= 0.486275
opacity= 0.584314
opacity= 0.682353
opacity= 0.780392
22:35:37: D:\Remote repositories\qt-code\QWidget_8\build\Desktop_Qt_5_15_2_MinGW_64_bit-Debug\debug\QWidget_8.exe 退出，退出代码: 0
 {1 ?} {2?}
*/
